package com.bytecodezz.app.base.framework.base.general

import android.content.Intent
import android.os.Bundle
import android.view.View


interface IBaseActivity {
    /**
     * @author     : bytecodezz
     * @version    : version 1.0
     * @description: 创建界面布局，根据返回的Int布局ID
     * 此方法如果返回为null的时候将回调 generateContentView(savedInstanceState: Bundle?): View方法并填充其返回的View
     * @param null
     * @return 布局id
     *
     */
    fun generateContentView(): Int?

    /**
     * @author     : bytecodezz
     * @version    : version 1.0
     * @description: 创建界面布局，根据返回的View对象
     * 只有当generateContentView(): Int?方法返回为null的时候才会从该方法进行回调
     * @param savedInstanceState: Bundle?
     * @return 布局View
     *
     */
    fun generateContentView(savedInstanceState: Bundle?): View?

    /**
     * onCreate方法即将执行完毕
     * 在此方法中开始自己的逻辑
     *
     * @param savedInstanceState 原onCreate里面的状态保存参数
     */
    fun onActionStart(savedInstanceState: Bundle?)

    /**
     * 在调用 super.onCreate(savedInstanceState) 方法之前
     */
    fun onActionPreSuper()

    /**
     * 在调用 setContentView() 方法之前
     */
    fun onActionPreView()

    /**
     * 在调用 setContentView() 方之后
     */
    fun onActionPostView()

    /**
     * onNewIntent 方法在创建Activity但无需重新创建实例的情况下调用
     *
     * @param intent
     */
    fun newIntent(intent: Intent?)

    /**
     * 保存状态回调
     *
     * @param
     */
    fun saveInstanceState(outState: Bundle?)

    /**
     * 恢复状态回调
     *
     * @param outState
     */
    fun restoreInstanceState(outState: Bundle?)

    /**
     * 虚拟键 返回按钮点击回调
     */
    fun onKeyBack(): Boolean

    /**
     * 虚拟键 Home按钮点击回调
     */
    fun onKeyHome(): Boolean

    /**
     * 虚拟键 菜单按钮点击回调
     */
    fun onKeyMenu(): Boolean

    /**
     * 设置默认屏幕方向
     */
    fun defaultOrientation(): Int

    /**
     * 设置屏幕方向
     */
    fun setScreenOrientation(orientation: Int)
}